#pragma once
#include "IShape.h"
#include "TypeDefinitions.h"

typedef std::vector<CPolygon*> Neighbours;

class CPolygon
	: public IShape
{
public:
	CPolygon(Verticles* v, ColorT* c, OpacityT o);
	CPolygon* copy();

	virtual ~CPolygon(void) ;
	void calculateBox();

	std::string toSVG();

	void print();

	virtual int getZ(){return positionZ;}
	virtual void setZ(int z){ positionZ = z;}

	Verticles* verticles;
	ColorT* color;
	OpacityT opacity;
	
	int leftUpX;
	int leftUpY;
	int rightBottomX;
	int rightBottomY;
	int positionZ;

	Neighbours neighbours;
private:
	CPolygon();
};

